/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package vccibernos;

import java.util.*;

/**
 *
 * @author JAVA
 */
public final class FacturaAlquiler extends Factura{
    private Cliente cliente;
    private float total;
    private List<Alquiler> listaAlquileres;
    
    //Constructor: los primeros atributos, desde "id" hasta "total" son de la clase Padre
    public FacturaAlquiler(Cliente cliente,Date fecha,List<Alquiler> lista){
        super(fecha);
        this.cliente=cliente;
        this.listaAlquileres=lista;
        calcularTotal();
    }
    
    //Getter
    public List<Alquiler> getListaAlquiler(){
        return listaAlquileres;
    }

    public Cliente getCliente() {
        return cliente;
    }
    
    //Setter
    public void setListaAlquiler(List<Alquiler> lista){
        listaAlquileres=lista;
    }
   
    //ToString de la Lista de alquilerres completa. Muestra la lista de alquileres solamente
    //cada uno con su codigo, su tarifa y sus dias
 
    public void imprimirArticulos(){   
        for(Alquiler alquiler:listaAlquileres){            
            float precio=alquiler.getPrecio();
            Date fecha=alquiler.getFechaFin();
            Articulo a=alquiler.getArticulo();
            String informacion=a.toString();
            System.out.println("+++++++++++++++");
            System.out.println(informacion);
            System.out.println("Fecha de entrega: "+fecha);
            System.out.println("Precio: "+precio);
            Iterator it=alquiler.getListap().iterator();
            while(it.hasNext()){
                Promocion p=(Promocion)it.next();
                System.out.println("Articulo en promocion: "+p.getDescripcion()+" Descuento: "+p.getPorcentaje()+"% Dias extra: "+p.getDias());                
            }
        }
    }
    

    public float getTotal() {
        return this.total;
    }

    
    public void setTotal(float total) {
        this.total=total;
    }

    
    @Override
    public void calcularTotal() {
        Iterator it=listaAlquileres.iterator();
        while(it.hasNext())
        {
            Alquiler a=(Alquiler)it.next();
            setTotal(getTotal()+a.getPrecio());
        }        
    }
    
    
    @Override
    public void imprimirFactura(){
       System.out.println(" ---------------------");
        System.out.println(super.getVideoclub());
        System.out.println(" ");
        System.out.println("+--------------------+");
        System.out.println("|  --- COMPRADOR --- |");
        System.out.println("+--------------------+");
        System.out.println("  Nombre: "+cliente.getNombre()+" "+cliente.getApellidos());
        System.out.println("  NIF: "+cliente.getDni());        
        System.out.println("+---------------------+");
        System.out.println("| ---  ARTICULOS  --- |");
        System.out.println("+---------------------+");
        imprimirArticulos();
        System.out.println("-----------------------");        
        System.out.println("El total es: "+getTotal());
    }

    

   
    
}
